package Modelo;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Scanner;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Principal.Liga;

public class Equipo {
private String codigo, nombreEquipo, ciudad, nombreEstadio;
private int annoFundacion, juegosJugados, juegosGanados, JuegosPerdidos, juegosDiferencia;

public int getJuegosDiferencia() {
	return juegosDiferencia;
}


public void setJuegosDiferencia(int juegosDiferencia) {
	this.juegosDiferencia = juegosDiferencia;
}

private ArrayList<Jugador> jugadores;


public Equipo() {
	super();
	this.codigo = "";
	this.nombreEquipo = "";
	this.ciudad = "";
	this.nombreEstadio = "";
	this.annoFundacion = 0;
	this.juegosJugados = 0;
	this.juegosGanados = 0;
	this.JuegosPerdidos = 0;
	this.jugadores = new ArrayList<Jugador>();
}


public Equipo(String codigo, String nombreEquipo, String ciudad,String nombreEstadio, int annoFundacion, int juegosJugados,
		int juegosGanados, int juegosPerdidos) {
	super();
	this.codigo = codigo;
	this.nombreEquipo = nombreEquipo;
	this.ciudad = ciudad;
	this.nombreEstadio = nombreEstadio;
	this.annoFundacion = annoFundacion;
	this.juegosJugados = juegosJugados;
	this.juegosGanados = juegosGanados;
	this.JuegosPerdidos = juegosPerdidos;
	this.jugadores = new ArrayList<Jugador>();
}

public String getCodigo() {
	return codigo;
}
public void setCodigo(String codigo) {
	this.codigo = codigo;
}
public String getNombreEquipo() {
	return nombreEquipo;
}
public void setNombreEquipo(String nombreEquipo) {
	this.nombreEquipo = nombreEquipo;
}
public String getCiudad() {
	return ciudad;
}
public void setCiudad(String ciudad) {
	this.ciudad = ciudad;
}
public String getNombreEstadio() {
	return nombreEstadio;
}
public void setNombreEstadio(String nombreEstadio) {
	this.nombreEstadio = nombreEstadio;
}
public int getAnnoFundacion() {
	return annoFundacion;
}
public void setAnnoFundacion(int annoFundacion) {
	this.annoFundacion = annoFundacion;
}
public int getJuegosJugados() {
	return juegosJugados;
}
public void setJuegosJugados(int juegosJugados) {
	this.juegosJugados = juegosJugados;
}
public int getJuegosGanados() {
	return juegosGanados;
}
public void setJuegosGanados(int juegosGanados) {
	this.juegosGanados = juegosGanados;
}
public int getJuegosPerdidos() {
	return JuegosPerdidos;
}
public void setJuegosPerdidos(int juegosPerdidos) {
	JuegosPerdidos = juegosPerdidos;
}



public ArrayList<Jugador> getJugadores() {
	return jugadores;
}


public void setJugadores(ArrayList<Jugador> jugadores) {
	this.jugadores = jugadores;
}

public static boolean leerArchivo(String ruta) throws IOException{
	//System.out.println("Entro a leer archivo");
	//boolean respuesta = true;
	String cedula = null; 
	FileReader file = new FileReader(ruta);
	Scanner scanner = new Scanner(file);
    //Equipo e = new Equipo();
while (scanner.hasNextLine()) {//Este bucle nos va a permitir recorrer nuestro fichero hasta el final
  
  Scanner line = new Scanner(scanner.nextLine()); //Obtenemos la siguiente linea del fichero
  
  line.useDelimiter(" "); //Especificamos el separador

  if(line.hasNext()) {
	cedula = line.next();
	if (!validarCedula(cedula)){
		return false;
	}
	line.close();
    }// fin del if line.hasNext
}// fin del while

scanner.close(); //Cerramos scanner y fichero
file.close();
return true;
}// fin del metodo leerArchivo

private static boolean validarCedula(String cedula){
	//boolean respuesta=true;
	//System.out.println("Entro a validar cedula");
	
	for (int i=0;i<Liga.equipos.size();i++){
		//System.out.println("Estoy dentro del for que recorre los " +
			//	"equipos Hay "+Liga.equipos.size()+" Equipos");
		
		for (int j=0;j<Liga.equipos.get(i).getJugadores().size();j++){
			//System.out.println("Estoy dentro del for que recorre los jugadores voy en Equipo  "+i+" jugador "+j);
			
			if (cedula.equalsIgnoreCase(Liga.equipos.get(i).getJugadores().get(j).getCedula())){
			//	System.out.println("Cedula actual : " + cedula + "\tCedula jugador registrado: "+Liga.equipos.get(i).getJugadores().get(j).getCedula());
				
				JOptionPane.showMessageDialog(new JFrame(), "El Numero de cedula "+cedula+ " ya fue " +
						" asignado a otro jugador por lo tanto no se cargo el archivo" +
						" por favor corrija este error e intente de nuevo cargar el archivo","Validar Cedula",JOptionPane.WARNING_MESSAGE);
				return false;
			} else {
			//	System.out.println("Las cedulas no se parecen");
			}
			
		}
		
	}
	return true;
}

public void cargarJugadores(String ruta) throws IOException{
	Jugador jugador;
	String cedula = null , nombre, apellido,	posicion	;
	Calendar fecha_nacimiento;
	int ci, hr;
	FileReader file = new FileReader(ruta);
	Scanner scanner = new Scanner(file);

	if(leerArchivo(ruta)) {
	
		while (scanner.hasNextLine()) {//Este bucle nos va a permitir recorrer nuestro fichero hasta el final
		  
		  Scanner line = new Scanner(scanner.nextLine()); //Obtenemos la siguiente linea del fichero
		  
		  line.useDelimiter(" "); //Especificamos el separador
		
		  if(line.hasNext()) {
			cedula = line.next();
			nombre = line.next();
		    apellido = line.next();
		    int anno = line.nextInt();
		    int mes = line.nextInt();
		    int dia = line.nextInt();
		    fecha_nacimiento = Calendar.getInstance();
		    fecha_nacimiento.set(anno, mes, dia);
		    posicion = line.next();
		    ci = line.nextInt();
		    hr = line.nextInt();
		    jugador = new Jugador(cedula,nombre,apellido,posicion,fecha_nacimiento,ci,hr);
		    jugadores.add(jugador);
		    line.close();
		    }
		}// fin del while
		
		
		scanner.close(); //Cerramos scanner y fichero
		file.close();

}// fin del if externo
	
}
}
